home *** CD-ROM | disk | FTP | other *** search
- ; a0 - pool
- ; a1 - source estring
-
- xdef _DupEStrPooled
-
- _DupEStrPooled
- movem.l d1-d3/a0-a2/a6,-(a7)
- move.l a1,d3
- moveq #0,d2
- move.w (-2,a1),d2
- move.l d2,d0
- addq.l #6,d0 ; header + zero byte
- move.l d2,-(a7)
- movea.l $4.w,a6
- jsr (-708,a6) ; AllocPooled()
- move.l (a7)+,d1
- tst.l d0
- beq.s .exit
- move.l d0,a0
- moveq #16,d0
- lsl.l d0,d1 ; max, len=0
- move.l d1,(a0)+
- move.l a0,d0
-
- move.l d3,a2
- .loop move.b (a2)+,(a1)+ ; copy src to dst
- bne.s .loop
- suba.l a0,a1
- move.w a1,(-2,a0)
-
- movem.l (a7)+,d1-d3/a0-a2/a6
- .exit rts
-